package com.joolun.system.domain;

import java.math.BigDecimal;
import com.joolun.common.annotation.Excel;
import com.joolun.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


/**
 * 招生课程对象 edu_course
 *
 * @author joolun
 * @date 2025-02-26
 */
@Data
public class EduCourse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 课程id */
    @Excel(name = "课程id")
    private Long courseId;

    /** 课程标题 */
    @Excel(name = "课程标题")
    private String courseName;

    /** 课程分类：1-小白课，2-进阶课程，3-高阶课程，4-顶阶课程 */
    @Excel(name = "课程分类：1-小白课，2-进阶课程，3-高阶课程，4-顶阶课程")
    private Long courseType1;

    /** 二级分类：1-招生课，2-小程序课 */
    @Excel(name = "二级分类：1-招生课，2-小程序课")
    private Long courseType2;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 详情图片 */
    @Excel(name = "详情图片")
    private String detailsImg;

    /** 列表图片 */
    @Excel(name = "列表图片")
    private String listImg;

    /** 课程描述 */
    @Excel(name = "课程描述")
    private String courseDescribe;

    /** 课程类型是否公开：1-公开课，2-付费课 */
    @Excel(name = "课程类型是否公开：1-公开课，2-付费课")
    private Long courseIsOpen;

    /** 播放类型：1-直播课，2-录播课，3-打包课 */
    @Excel(name = "播放类型：1-直播课，2-录播课，3-打包课")
    private Long playType;

    /** 课程原价 */
    @Excel(name = "课程原价")
    private Long originalPrice;

    /** 支付金额 */
    @Excel(name = "支付金额")
    private Long paymentAmount;

    /** 关联进阶课 */
    @Excel(name = "关联进阶课")
    private Long contactAdvanced;

    /** 共享分班 */
    @Excel(name = "共享分班")
    private String sharedClass;

    /** 课程用途：1-默认，2-投放，3-进阶，4-仅收款，5-后端服务 */
    @Excel(name = "课程用途：1-默认，2-投放，3-进阶，4-仅收款，5-后端服务")
    private Long coursePurpose;

    /** 授课老师 */
    @Excel(name = "授课老师")
    private Long teacher;

    /** 打包课程 */
    @Excel(name = "打包课程")
    private String packagedCourse;

    /** 购买协议id */
    @Excel(name = "购买协议id")
    private Long agreementId;

    /** 内部说明 */
    @Excel(name = "内部说明")
    private String courseStatement;

    /** 排序 */
    @Excel(name = "排序")
    private Long courseSort;

    /** 课程详情 */
    @Excel(name = "课程详情")
    private String courseDetails;

    /** 课程发布：1-已发布，2-未发布 */
    @Excel(name = "课程发布：1-已发布，2-未发布")
    private Long isRelease;

    /** 在公众号列表中：1-隐藏，2-显示 */
    @Excel(name = "在公众号列表中：1-隐藏，2-显示")
    private Long isGzhHide;

    /** 主体id */
    @Excel(name = "主体id")
    private String corpId;

    public void setCourseId(Long courseId)
    {
        this.courseId = courseId;
    }

    public Long getCourseId()
    {
        return courseId;
    }
    public void setCourseName(String courseName)
    {
        this.courseName = courseName;
    }

    public String getCourseName()
    {
        return courseName;
    }
    public void setCourseType1(Long courseType1)
    {
        this.courseType1 = courseType1;
    }

    public Long getCourseType1()
    {
        return courseType1;
    }
    public void setCourseType2(Long courseType2)
    {
        this.courseType2 = courseType2;
    }

    public Long getCourseType2()
    {
        return courseType2;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setDetailsImg(String detailsImg)
    {
        this.detailsImg = detailsImg;
    }

    public String getDetailsImg()
    {
        return detailsImg;
    }
    public void setListImg(String listImg)
    {
        this.listImg = listImg;
    }

    public String getListImg()
    {
        return listImg;
    }
    public void setCourseDescribe(String courseDescribe)
    {
        this.courseDescribe = courseDescribe;
    }

    public String getCourseDescribe()
    {
        return courseDescribe;
    }
    public void setCourseIsOpen(Long courseIsOpen)
    {
        this.courseIsOpen = courseIsOpen;
    }

    public Long getCourseIsOpen()
    {
        return courseIsOpen;
    }
    public void setPlayType(Long playType)
    {
        this.playType = playType;
    }

    public Long getPlayType()
    {
        return playType;
    }
    public void setOriginalPrice(Long originalPrice)
    {
        this.originalPrice = originalPrice;
    }

    public Long getOriginalPrice()
    {
        return originalPrice;
    }
    public void setPaymentAmount(Long paymentAmount)
    {
        this.paymentAmount = paymentAmount;
    }

    public Long getPaymentAmount()
    {
        return paymentAmount;
    }
    public void setContactAdvanced(Long contactAdvanced)
    {
        this.contactAdvanced = contactAdvanced;
    }

    public Long getContactAdvanced()
    {
        return contactAdvanced;
    }
    public void setSharedClass(String sharedClass)
    {
        this.sharedClass = sharedClass;
    }

    public String getSharedClass()
    {
        return sharedClass;
    }
    public void setCoursePurpose(Long coursePurpose)
    {
        this.coursePurpose = coursePurpose;
    }

    public Long getCoursePurpose()
    {
        return coursePurpose;
    }
    public void setTeacher(Long teacher)
    {
        this.teacher = teacher;
    }

    public Long getTeacher()
    {
        return teacher;
    }
    public void setPackagedCourse(String packagedCourse)
    {
        this.packagedCourse = packagedCourse;
    }

    public String getPackagedCourse()
    {
        return packagedCourse;
    }
    public void setAgreementId(Long agreementId)
    {
        this.agreementId = agreementId;
    }

    public Long getAgreementId()
    {
        return agreementId;
    }
    public void setCourseStatement(String courseStatement)
    {
        this.courseStatement = courseStatement;
    }

    public String getCourseStatement()
    {
        return courseStatement;
    }
    public void setCourseSort(Long courseSort)
    {
        this.courseSort = courseSort;
    }

    public Long getCourseSort()
    {
        return courseSort;
    }
    public void setCourseDetails(String courseDetails)
    {
        this.courseDetails = courseDetails;
    }

    public String getCourseDetails()
    {
        return courseDetails;
    }
    public void setIsRelease(Long isRelease)
    {
        this.isRelease = isRelease;
    }

    public Long getIsRelease()
    {
        return isRelease;
    }
    public void setIsGzhHide(Long isGzhHide)
    {
        this.isGzhHide = isGzhHide;
    }

    public Long getIsGzhHide()
    {
        return isGzhHide;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("courseId", getCourseId())
                .append("courseName", getCourseName())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("courseType1", getCourseType1())
                .append("courseType2", getCourseType2())
                .append("delFlag", getDelFlag())
                .append("detailsImg", getDetailsImg())
                .append("listImg", getListImg())
                .append("courseDescribe", getCourseDescribe())
                .append("courseIsOpen", getCourseIsOpen())
                .append("playType", getPlayType())
                .append("originalPrice", getOriginalPrice())
                .append("paymentAmount", getPaymentAmount())
                .append("contactAdvanced", getContactAdvanced())
                .append("sharedClass", getSharedClass())
                .append("coursePurpose", getCoursePurpose())
                .append("teacher", getTeacher())
                .append("packagedCourse", getPackagedCourse())
                .append("agreementId", getAgreementId())
                .append("courseStatement", getCourseStatement())
                .append("courseSort", getCourseSort())
                .append("courseDetails", getCourseDetails())
                .append("isRelease", getIsRelease())
                .append("isGzhHide", getIsGzhHide())
                .toString();
    }
}